import pandas as pd


def func_merge():
    # 对于一个大的函数的理解我们需要就是去理解有哪些参数，每个参数的作用是什么效果是什么解决什么问题
    # 对于一个大的类的理解，我们需要就是去理解他的功能模块有哪些，你不能细分到方法，需要分到功能。
    frame1 = pd.DataFrame({
        "name1": ["小红", "小绿", "小蓝"],
        "age1": [18, 19, 20],
        "height1": [165, 175, 185]
    })
    frame2 = pd.DataFrame({
        "name": ["小菊", "小红", "小紫"],
        "age": [19, 20, 22],
        "height": [165, 175, 185]
    })
    # 不指定列，默认去找名字一样的列操作，多个就去找多个，不推荐
    # pd.merge(frame1, frame2)
    # on参数指定列 需要两个的列名相同
    # pd.merge(frame1, frame2, on=["age1"])
    # 如果列名不同 需要使用left_on 与right_on
    frame5 = pd.merge(frame1, frame2, left_on=["age1", "name1"], right_on=["age", "name"], how="left")
    print(frame5)


if __name__ == '__main__':
    func_merge()
